package com.itehima.Topic4;

/*请从控制台分别接收两个“生日”，格式为：yyyy年MM月dd日，用程序比较两个生日表示的人的年龄大小关系并打印出结果;

        要求:

        1:使用Date+SimpleDateFormat完成一遍,

        2:再使用LocalDate+DateTimeFormatter+Period完成一遍;

        **提示:**

        注意,生日值越小,证明出生的越早,就意味着年龄越大,不要搞反了呦;*/

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) throws ParseException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个人的生日（格式为：yyyy年MM月dd日）：");
        String str1 = sc.next();
        System.out.println("请输入第二个人的生日（格式为：yyyy年MM月dd日）：");
        String str2 = sc.next();
//        1:使用Date+SimpleDateFormat完成一遍
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
        Date date1 = sdf.parse(str1);
        Date date2 = sdf.parse(str2);
        System.out.println(date1);
        System.out.println(date2);
        if (date1.equals(date2)) {
            System.out.println("两个生日的人年龄相同");
        } else {
            System.out.println(date1.before(date2) ? "第2个生日的人年龄更小一些" : "第1个生日的人年龄更小一些");
        }
//        2:再使用LocalDate+DateTimeFormatter+Period完成一遍;
        System.out.println("------------------------------------------------------------");
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
        LocalDate ld1 = LocalDate.parse(str1, dtf);
        LocalDate ld2 = LocalDate.parse(str2, dtf);
        System.out.println(ld1);
        System.out.println(ld2);

        Period period = Period.between(ld1, ld2);
        System.out.println(period);
        if (period.getYears()>0){
            System.out.println("第2个生日的人年龄更小一些");
        }else if (period.getYears()<0){
            System.out.println("第1个生日的人年龄更小一些");
        }else {
            if (period.getMonths()>0){
                System.out.println("第2个生日的人年龄更小一些");
            }else if (period.getMonths()<0){
                System.out.println("第1个生日的人年龄更小一些");
            }else {
                if (period.getDays()>0){
                    System.out.println("第2个生日的人年龄更小一些");
                }else if (period.getDays()<0){
                    System.out.println("第1个生日的人年龄更小一些");
                }else {
                    System.out.println("两个生日的人年龄相同");
                }
            }
        }


    }

}
